package cin.ufpe.br.projetoESS.Dados;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import cin.ufpe.br.projetoESS.Entidades.Distribuidora;
import cin.ufpe.br.projetoESS.Entidades.Relatorios.DadosFinanceiros;

public class RepositorioDistribuidora {
	
	
	private Connection conn;

	public RepositorioDistribuidora(Connection conn)
	{
		this.conn = conn;		
	}



	public void inserirDistribuidora(Distribuidora d) throws SQLException
	{
		Statement statement = conn.createStatement();


		String queryInsertDistribuidora = "INSERT INTO DISTRIBUIDORA (nome,endereco,telefone,email,cnpj,contrato,valorcontrato)"
			+ "VALUES('"
			+ d.getNome() + "','"
			+ d.getEndereco() + "',"
			+ d.getTelefone() + ",'"
			+ d.getEmail() + "',"
			+ d.getCnpj() + ","
			+ d.getContrato() + ","
			+ d.getValorContrato() + ")";

		System.out.println(queryInsertDistribuidora);
		statement.executeUpdate(queryInsertDistribuidora);
		conn.commit();		
	}
	
	public DadosFinanceiros[] getDadosGastosDistribuidora() throws SQLException{

		DadosFinanceiros[] dadosFinanceiros = null;
		
		Statement statement = conn.createStatement();		
		ResultSet resultSet;
		
		String queryQtdDistribuidoras = "SELECT COUNT(*) AS qtdDistribuidoras FROM Distribuidora";
		resultSet = statement.executeQuery(queryQtdDistribuidoras);
		resultSet.next();
		
		int qtdDistribuidoras = resultSet.getInt("qtdDistribuidoras");
		
		if(qtdDistribuidoras > 0){
			
			dadosFinanceiros = new DadosFinanceiros[qtdDistribuidoras];
			
			String queryDistribuidoras = "SELECT nome, valorContrato FROM Distribuidora";
			resultSet = statement.executeQuery(queryDistribuidoras);
							
			int i = 0;
			
			while(resultSet.next()){
				
				String nome = resultSet.getString("nome");
				double valorContrato = resultSet.getDouble("valorContrato");
				
				dadosFinanceiros[i] = new DadosFinanceiros(nome, valorContrato);
				
				i++;
			}
		}
		
		return dadosFinanceiros;

	}

}
